home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / os2 / lo2_0514.zip / INSTALL.EXE / STRUC299.H < prev   
C/C++ Source or Header  |  1997-05-13  |  27KB  |  672 lines

  1.  
  2. /////////////////////////////////////////////////////////////////////////
  3. // LoraBBS Professional Edition - Version 2.99.38                      //
  4. // Copyright (c) 1996 by Marco Maccaferri. All rights reserved.        //
  5. /////////////////////////////////////////////////////////////////////////
  6.  
  7. #ifndef _STRUC299_H
  8. #define _STRUC299_H
  9.  
  10. /////////////////////////////////////////////////////////////////////////
  11. // Global definitions                                                  //
  12. /////////////////////////////////////////////////////////////////////////
  13.  
  14. #define VERSION            "2.99.41"
  15. #define VER_MAJOR          2
  16. #define VER_MINOR          99
  17. #define PRODUCT_ID         0x4E
  18.  
  19. /////////////////////////////////////////////////////////////////////////
  20. // Index file for message and file areas                               //
  21. /////////////////////////////////////////////////////////////////////////
  22.  
  23. #ifndef IDX_DELETED
  24. #define IDX_DELETED        0x0001
  25.  
  26. typedef struct {
  27.    CHAR   Key[16];
  28.    USHORT Level;
  29.    ULONG  AccessFlags;
  30.    ULONG  DenyFlags;
  31.    ULONG  Position;
  32.    USHORT Flags;
  33. } INDEX;
  34.  
  35. #endif
  36.  
  37. /////////////////////////////////////////////////////////////////////////
  38. // Message areas structure (msg.dat / msg.idx)                         //
  39. /////////////////////////////////////////////////////////////////////////
  40.  
  41. // Message base type identification numbers
  42. #define ST_JAM             0
  43. #define ST_SQUISH          1
  44. #define ST_USENET          2
  45. #define ST_FIDO            3
  46. #define ST_ADEPT           4
  47. #define ST_HUDSON          5     // Not implemented
  48. #define ST_GOLDBASE        6     // Not implemented
  49. #define ST_PASSTHROUGH     7
  50.  
  51. // Special values for origin index
  52. #define OIDX_DEFAULT       0
  53. #define OIDX_RANDOM        -1
  54.  
  55. typedef struct {
  56.    USHORT Size;                     // Size of this structure
  57.    CHAR   Display[128];             // Area's description
  58.    CHAR   Key[16];                  // Area's name
  59.    USHORT Level;                    // Access level
  60.    ULONG  AccessFlags;              // Access flags
  61.    ULONG  DenyFlags;                // Deny flags
  62.    USHORT WriteLevel;               // Write level
  63.    ULONG  WriteFlags;               // Write flags
  64.    ULONG  DenyWriteFlags;           // Deny write flags
  65.    UCHAR  Age;                      // Minimum age to access the area
  66.    USHORT Storage;                  // Message base type
  67.    CHAR   Path[128];                // Path to message base files
  68.    USHORT Board;                    // Board number (for Goldbase and Hudson)
  69.    USHORT Flags;                    // Flags
  70.    USHORT Group;                    // Group number
  71.    CHAR   EchoMail;                 // TRUE=This is an echomail area
  72.    CHAR   ShowGlobal;               // TRUE=Show this area in global areas list
  73.    CHAR   UpdateNews;               // TRUE=Update messages from newsserver
  74.    CHAR   Offline;                  // TRUE=Can be used with the Offline-reader
  75.    CHAR   MenuName[32];             // Menu name for this area
  76.    CHAR   Moderator[64];            // Name of this area's moderator
  77.    ULONG  Cost;                     // Cost to access this area
  78.    USHORT DaysOld;                  // Number of days to keep messages
  79.    USHORT RecvDaysOld;              // Number of days to keep a received message
  80.    USHORT MaxMessages;              // Maximum number of messages to keep
  81.    ULONG  ActiveMsgs;               // Number of messages in this area
  82.    CHAR   NewsGroup[128];           // Usenet newsgroup name
  83.    ULONG  Highest;                  // Highest message retrived from the newsserver
  84.    CHAR   EchoTag[64];              // EchoMail tag name
  85.    SHORT  OriginIndex;              // Index to the origin line or special value
  86.    CHAR   Origin[80];               // Origin da usare al posto di quella di default
  87.    ULONG  HighWaterMark;            // Highest message number sent
  88.    CHAR   Address[48];              // Address to use when sending echomail messages
  89.    ULONG  FirstMessage;             // First message number in area
  90.    ULONG  LastMessage;              // Last message number in area
  91.    ULONG  NewsHWM;                  // High water mark for newsgroup areas
  92. } MESSAGE;
  93.  
  94. /////////////////////////////////////////////////////////////////////////
  95. // EchoMail link file structure (echolink.dat)                         //
  96. /////////////////////////////////////////////////////////////////////////
  97.  
  98. typedef struct {
  99.    USHORT Free;                     // TRUE=Free record
  100.    ULONG  EchoTag;                  // 32bit CRC of echomail tag name
  101.    USHORT Zone;                     // Zone number
  102.    USHORT Net;                      // Net number
  103.    USHORT Node;                     // Node number
  104.    USHORT Point;                    // Point number
  105.    CHAR   Domain[32];               // Domain name
  106.    UCHAR  SendOnly;                 // TRUE=Node can only send messages
  107.    UCHAR  ReceiveOnly;              // TRUE=Node can only receive messages
  108.    UCHAR  PersonalOnly;             // TRUE=Node receive only messages for the Sysop
  109.    UCHAR  Passive;                  // TRUE=Passive mode (message are not exported)
  110.    UCHAR  Skip;                     // Used internally
  111. } ECHOLINK;
  112.  
  113. /////////////////////////////////////////////////////////////////////////
  114. // File areas structures (file.dat / file.idx)                         //
  115. /////////////////////////////////////////////////////////////////////////
  116.  
  117. typedef struct {
  118.    USHORT Size;                     // Size of this structure
  119.    CHAR   Display[128];             // Area's description
  120.    CHAR   Key[16];                  // Area's name
  121.    USHORT Level;                    // Access level
  122.    ULONG  AccessFlags;              // Access flags
  123.    ULONG  DenyFlags;                // Deny flags
  124.    USHORT UploadLevel;              // Upload level
  125.    ULONG  UploadFlags;              // Upload flags
  126.    ULONG  UploadDenyFlags;          // Deny upload flags
  127.    USHORT DownloadLevel;            // Download level
  128.    ULONG  DownloadFlags;            // Download flags
  129.    ULONG  DownloadDenyFlags;        // Deny download flags
  130.    UCHAR  Age;                      // Minimum age to access the area
  131.    CHAR   Download[128];            // Path where download files are stored
  132.    CHAR   Upload[128];              // Path where uploaded files are to be stored
  133.    CHAR   CdRom;                    // TRUE=The are is on CDROM
  134.    CHAR   FreeDownload;             // TRUE=No download limits
  135.    CHAR   ShowGlobal;               // TRUE=Show in global lists
  136.    CHAR   MenuName[32];             // Name of the menu file for this area
  137.    CHAR   Moderator[64];            // Name of the manager of this area
  138.    ULONG  Cost;                     // Cost to access this area
  139.    ULONG  ActiveFiles;              // Number of files in this area
  140.    ULONG  UnapprovedFiles;          // Number of unapproved files
  141.    CHAR   EchoTag[64];              // Fileecho (TIC) tag name
  142.    UCHAR  UseFilesBBS;              // Uses the files.bbs instead of the filebase
  143.    UCHAR  DlCost;                   // Cost for download each file
  144.    CHAR   FileList[128];            // Alternative files list
  145. } FILES;
  146.  
  147. /////////////////////////////////////////////////////////////////////////
  148. // FileBase structures (filebase.dat / filebase.idx)                   //
  149. /////////////////////////////////////////////////////////////////////////
  150.  
  151. #define DATA_EXT           ".dat"
  152. #define INDEX_EXT          ".idx"
  153.  
  154. #define FILE_DELETED       0x8000
  155. #define FILE_OFFLINE       0x4000
  156. #define FILE_UNAPPROVED    0x2000
  157. #define FILE_CDROM         0x1000
  158.  
  159. #define FILEBASE_ID        0x602C789FL
  160.  
  161. typedef struct {
  162.    ULONG  Id;                       // Must be FILEBASE_ID
  163.    CHAR   Area[32];                 // File area name
  164.    CHAR   Name[32];                 // File name
  165.    CHAR   Complete[128];            // Fully qualified pathfilename
  166.    USHORT Description;              // Description length
  167.    USHORT Uploader;                 // Uploader name length
  168.    CHAR   Keyword[32];              // Optional keywords
  169.    ULONG  Size;                     // Size in bytes
  170.    ULONG  DlTimes;                  // Number of downloads
  171.    ULONG  FileDate;                 // File's creation date and time (seconds since 1970)
  172.    ULONG  UploadDate;               // File's upload date and time
  173.    ULONG  Cost;                     // Cost for download this file
  174.    ULONG  Password;                 // 32bit CRC of file's download password
  175.    USHORT Level;                    // Security level
  176.    ULONG  AccessFlags;              // Access flags
  177.    ULONG  DenyFlags;                // Deny flags
  178.    USHORT Flags;                    // Miscellaneous flags
  179. } FILEDATA;
  180.  
  181. typedef struct {
  182.    ULONG  Area;                     // 32bit CRC of file's area name
  183.    CHAR   Name[32];                 // File name
  184.    ULONG  UploadDate;               // File's upload date and time
  185.    ULONG  Offset;                   // Offset of the FILEDATA structure
  186.    USHORT Flags;                    // Miscellaneous flags
  187. } FILEINDEX;
  188.  
  189. /////////////////////////////////////////////////////////////////////////
  190. // Users database structures (user.dat / user.idx)                     //
  191. /////////////////////////////////////////////////////////////////////////
  192.  
  193. typedef struct {
  194.    USHORT Deleted;                  // Record is deleted
  195.    ULONG  NameCrc;                  // User's name 32bit CRC
  196.    ULONG  RealNameCrc;              // User's real name 32bit CRC
  197.    ULONG  Position;
  198. } UINDEX;
  199.  
  200. typedef struct {
  201.    USHORT Size;                     // Size of the record
  202.    CHAR   Name[48];                 // Name or nickname
  203.    ULONG  Password;                 // Password as a 32bit CRC
  204.    CHAR   RealName[48];             // Real name
  205.    CHAR   Company[36];              // Company name (if allowed)
  206.    CHAR   Address[48];              // First line of the address
  207.    CHAR   City[48];                 // Second line of the address
  208.    CHAR   DayPhone[26];             // Daytime phone number
  209.    CHAR   Ansi;                     // TRUE=User can display ANSI
  210.    CHAR   Avatar;                   // TRUE=User can display AVATAR
  211.    CHAR   Color;                    // TRUE=User can display color informations
  212.    CHAR   HotKey;                   // TRUE=User can use hot keyed menus
  213.    CHAR   System;                   // System type (see above)
  214.    CHAR   Sex;                      // M=Male, F=Female (no other sex allowed at this writing)
  215.    UCHAR  FullEd;                   // TRUE=Use fullscreen editor
  216.    UCHAR  FullReader;               // TRUE=Use fullscreen reader
  217.    UCHAR  NoDisturb;                // TRUE=Do not disturb
  218.    UCHAR  AccessFailed;             // TRUE=Last access attempt failed
  219.    USHORT ScreenHeight;             // User's screen width
  220.    USHORT ScreenWidth;              // User's screen height
  221.    USHORT Level;                    // Level
  222.    ULONG  AccessFlags;              // Access flags
  223.    ULONG  DenyFlags;                // Deny access flags
  224.    ULONG  CreationDate;             // Record's creation date as a Unix-style timestamp
  225.    ULONG  LastCall;                 // User's last call date/time as a Unix-style timestamp
  226.    CHAR   MailBox[32];              // User's mailbox name
  227.    CHAR   LimitClass[16];           // Class of limits
  228.    ULONG  TotalCalls;               // Number of calls to the system
  229.    ULONG  TodayTime;                // Number of minutes on-line today
  230.    ULONG  WeekTime;                 // Number of minutes on-line this week
  231.    ULONG  MonthTime;                // Number of minutes on-line this month
  232.    ULONG  YearTime;                 // Number of minutes on-line this year
  233.    CHAR   Language[16];             // Currently selected language (if any)
  234.    CHAR   FtpHost[48];              // Host name for FTP transfers
  235.    CHAR   FtpName[32];              // User name for FTP transfers
  236.    CHAR   FtpPwd[32];               // Password for FTP transfers
  237.    CHAR   LastMsgArea[16];          // Last message area visited
  238.    CHAR   LastFileArea[16];         // Last file area visited
  239.    USHORT UploadFiles;              // Number of uploaded files
  240.    ULONG  UploadBytes;              // Total size of the uploaded files
  241.    USHORT DownloadFiles;            // Number of downloaded files
  242.    ULONG  DownloadBytes;            // Total size of the downloaded files
  243.    USHORT FilesToday;               // Files downloaded today
  244.    ULONG  BytesToday;               // Size of today downloaded files
  245.    UCHAR  ImportPOP3Mail;           // TRUE=Import e-mail from POP3 server
  246.    UCHAR  UseInetAddress;           // TRUE=Use the personal Inet address
  247.    CHAR   InetAddress[64];          // Personal E-Mail address
  248.    CHAR   Pop3Pwd[32];              // Password for POP3 mail server
  249.    CHAR   Archiver[16];             // Default archiver
  250.    CHAR   Protocol[16];             // Default protocol
  251.    CHAR   Signature[64];            // Personal signature
  252.    CHAR   FullScreen;               // TRUE=Full screen enhancements
  253.    CHAR   IBMChars;                 // TRUE=Can display IBM characters
  254.    CHAR   MorePrompt;               // TRUE=Display More? prompt at each page
  255.    CHAR   ScreenClear;              // TRUE=Send screen clear codes
  256.    CHAR   InUserList;               // TRUE=Display in user list
  257.    CHAR   Kludges;                  // TRUE=Display message's kludge lines
  258.    CHAR   MailCheck;                // TRUE=Mail check at logon
  259.    CHAR   NewFileCheck;             // TRUE=Check for new files at logon
  260.    UCHAR  BirthDay;                 // Day of birthdate
  261.    UCHAR  BirthMonth;               // Month of birthdate
  262.    USHORT BirthYear;                // Year of birthdate
  263.    ULONG  LastPwdChange;            // Time of last password change
  264. } USER;
  265.  
  266. /////////////////////////////////////////////////////////////////////////
  267. // Tagged message areas for offline reader (msgtags.dat)               //
  268. /////////////////////////////////////////////////////////////////////////
  269.  
  270. typedef struct {
  271.    UCHAR  Free;                     // TRUE=Record is free
  272.    UCHAR  Tagged;                   // TRUE=Tagged for offline mail packing
  273.    ULONG  UserId;                   // CRC32 of user's name
  274.    CHAR   Area[16];                 // Area name
  275.    ULONG  LastRead;                 // Number of last message read
  276.    ULONG  OlderMsg;                 // Timestamp of the older message to pack
  277. } MSGTAGS;
  278.  
  279. /////////////////////////////////////////////////////////////////////////
  280. // Files tagged for later download (filetags.dat)                      //
  281. /////////////////////////////////////////////////////////////////////////
  282.  
  283. typedef struct {
  284.    UCHAR  Free;                     // TRUE=Record is free
  285.    ULONG  UserId;                   // CRC32 of user's name
  286.    USHORT Index;                    // Reserved for internal use
  287.    CHAR   Area[16];                 // Area name
  288.    CHAR   Name[32];                 // Name of tagged file
  289.    ULONG  Size;                     // Size in bytes
  290.    CHAR   Complete[128];            // Complete path and file name
  291.    USHORT DeleteAfter;              // Delete file after transfer
  292.    USHORT CdRom;                    // The file is on a CD-ROM drive
  293. } FILETAGS;
  294.  
  295. /////////////////////////////////////////////////////////////////////////
  296. // Files and magic names available for file requests (okfile.dat)      //
  297. /////////////////////////////////////////////////////////////////////////
  298.  
  299. typedef struct {
  300.    USHORT Size;                     // Size of this structure
  301.    CHAR   Name[32];                 // File or magic-name
  302.    CHAR   Path[128];                // Complete pathname to the file
  303.    CHAR   Pwd[32];                  // Optional password
  304.    CHAR   Normal;                   // TRUE=Available for unknown nodes
  305.    CHAR   Known;                    // TRUE=Available for known nodes only
  306.    CHAR   Protected;                // TRUE=Available for password-protected nodes
  307. } OKFILE;
  308.  
  309. /////////////////////////////////////////////////////////////////////////
  310. // FidoNet address structure (address.dat)                             //
  311. /////////////////////////////////////////////////////////////////////////
  312.  
  313. typedef struct {
  314.    USHORT Zone;                     // Zone number
  315.    USHORT Net;                      // Net number
  316.    USHORT Node;                     // Node number
  317.    USHORT Point;                    // Point number
  318.    CHAR   Domain[32];               // Domain name
  319.    USHORT FakeNet;                  // 3d point fake net address
  320. } MAILADDRESS;
  321.  
  322. /////////////////////////////////////////////////////////////////////////
  323. // Main configuration file (config.dat)                                //
  324. /////////////////////////////////////////////////////////////////////////
  325.  
  326. #define CONFIG_VERSION     2936
  327.  
  328. #define NO                 0
  329. #define YES                1
  330. #define ASK                2
  331. #define AUTO               2
  332. #define REQUIRED           2
  333. #define PROMPT             3
  334.  
  335. typedef struct {
  336.    USHORT Size;
  337.    USHORT Version;
  338.  
  339.    CHAR   Device[32];               // Communication Device (COM2, COM3, etc.)
  340.    ULONG  Speed;                    // DTE Maximum Speed
  341.    USHORT LockSpeed;
  342.    CHAR   Initialize[3][48];        // Initialization Strings
  343.    CHAR   Answer[48];               // Command to Answer an Incoming Call
  344.    CHAR   Dial[48];                 // Command to Dial to Another Modem
  345.    CHAR   Hangup[48];               // Command to Hangup the Line
  346.    CHAR   OffHook[48];              // Command to Bring the Modem OffHook
  347.    USHORT DialTimeout;
  348.    USHORT CarrierDropTimeout;
  349.    USHORT StripDashes;
  350.    CHAR   FaxMessage[48];
  351.    CHAR   FaxCommand[64];
  352.  
  353.    CHAR   SystemName[64];
  354.    CHAR   SysopName[48];
  355.    CHAR   Location[48];
  356.    CHAR   Phone[32];
  357.    CHAR   NodelistFlags[64];
  358.  
  359.    USHORT NewUserLevel;
  360.    ULONG  NewUserFlags;
  361.    ULONG  NewUserDenyFlags;
  362.    CHAR   NewUserLimits[16];
  363.  
  364.    UCHAR  LoginType;
  365.    UCHAR  UseAnsi;
  366.    UCHAR  AskAlias;
  367.    UCHAR  AskCompanyName;
  368.    UCHAR  AskAddress;
  369.    UCHAR  AskCity;
  370.    UCHAR  AskPhoneNumber;
  371.    UCHAR  AskGender;
  372.  
  373.    CHAR   LogFile[64];
  374.  
  375.    CHAR   SystemPath[64];
  376.    CHAR   UserFile[64];
  377.    CHAR   NormalInbound[64];
  378.    CHAR   KnownInbound[64];
  379.    CHAR   ProtectedInbound[64];
  380.    CHAR   Outbound[64];
  381.    CHAR   NodelistPath[64];
  382.    CHAR   UsersHomePath[64];
  383.    CHAR   MenuPath[64];
  384.    CHAR   LanguageFile[64];
  385.    CHAR   TextFiles[64];
  386.    CHAR   SchedulerFile[64];
  387.  
  388.    CHAR   MainMenu[32];
  389.  
  390.    CHAR   HostName[48];
  391.    CHAR   NewsServer[48];
  392.    CHAR   MailServer[48];
  393.    CHAR   PopServer[48];
  394.  
  395.    USHORT FakeNet;
  396.  
  397.    USHORT MailStorage;
  398.    CHAR   MailPath[64];
  399.    USHORT NetMailStorage;
  400.    CHAR   NetMailPath[64];
  401.    USHORT BadStorage;
  402.    CHAR   BadPath[64];
  403.    USHORT DupeStorage;
  404.    CHAR   DupePath[64];
  405.  
  406.    USHORT TelnetServer;
  407.    USHORT TelnetPort;
  408.    USHORT FtpServer;
  409.    USHORT FtpPort;
  410.    USHORT WebServer;
  411.    USHORT WebPort;
  412.    USHORT SMTPServer;
  413.    USHORT SMTPPort;
  414.    USHORT POP3Server;
  415.    USHORT POP3Port;
  416.    USHORT NNTPServer;
  417.    USHORT NNTPPort;
  418.  
  419.    USHORT WaZoo;
  420.    USHORT EMSI;
  421.    USHORT Janus;
  422.  
  423.    USHORT NewAreasStorage;
  424.    CHAR   NewAreasPath[64];
  425.    USHORT NewAreasLevel;
  426.    ULONG  NewAreasFlags;
  427.    ULONG  NewAreasDenyFlags;
  428.    USHORT NewAreasWriteLevel;
  429.    ULONG  NewAreasWriteFlags;
  430.    ULONG  NewAreasDenyWriteFlags;
  431.  
  432.    UCHAR  Ansi;
  433.    UCHAR  IEMSI;
  434.  
  435.    UCHAR  ImportEmpty;
  436.    UCHAR  ReplaceTear;
  437.    CHAR   TearLine[32];
  438.    UCHAR  ForceIntl;
  439.    UCHAR  Secure;
  440.    UCHAR  KeepNetMail;
  441.    UCHAR  TrackNetMail;
  442.  
  443.    CHAR   MailOnly[64];
  444.    CHAR   EnterBBS[64];
  445.  
  446.    CHAR   ImportCmd[64];
  447.    CHAR   ExportCmd[64];
  448.    CHAR   SinglePassCmd[64];
  449.    CHAR   PackCmd[64];
  450.    CHAR   NewsgroupCmd[64];
  451.  
  452.    UCHAR  UseSinglePass;
  453.    UCHAR  SeparateNetMail;
  454.  
  455.    CHAR   AreasBBS[64];
  456.    UCHAR  UseAreasBBS;
  457.    UCHAR  UpdateAreasBBS;
  458.  
  459.    CHAR   AfterCallerCmd[64];
  460.    CHAR   AfterMailCmd[64];
  461.  
  462.    CHAR   Ring[32];
  463.    UCHAR  ZModemTelnet;
  464.    UCHAR  EnablePPP;
  465.    USHORT PPPTimeLimit;
  466.    CHAR   PPPCmd[64];
  467.  
  468.    CHAR   TempPath[64];
  469.    CHAR   OLRPacketName[16];
  470.    USHORT OLRMaxMessages;
  471.  
  472.    UCHAR  ExternalFax;
  473.    UCHAR  FaxFormat;
  474.    CHAR   FaxPath[64];
  475.    CHAR   AfterFaxCmd[64];
  476.    CHAR   FaxAlertNodes[64];
  477.    CHAR   FaxAlertUser[64];
  478.  
  479.    UCHAR  ReloadLog;
  480.    UCHAR  MakeProcessLog;
  481.    USHORT RetriveMaxMessages;
  482.  
  483.    UCHAR  UseAvatar;
  484.    UCHAR  UseColor;
  485.    UCHAR  UseFullScreenEditor;
  486.    UCHAR  UseHotKey;
  487.    UCHAR  UseIBMChars;
  488.    UCHAR  AskLines;
  489.    UCHAR  UsePause;
  490.    UCHAR  UseScreenClear;
  491.    UCHAR  AskBirthDate;
  492.    UCHAR  AskMailCheck;
  493.    UCHAR  AskFileCheck;
  494.  
  495.    UCHAR  ExternalEditor;
  496.    CHAR   EditorCmd[64];
  497.  
  498.    CHAR   HudsonPath[64];
  499.    CHAR   GoldPath[64];
  500.    USHORT BadBoard;
  501.    USHORT DupeBoard;
  502.    USHORT MailBoard;
  503.    USHORT NetMailBoard;
  504.  
  505.    UCHAR  UseFullScreenReader;
  506.    UCHAR  UseFullScreenLists;
  507.    UCHAR  UseFullScreenAreaLists;
  508. } CONFIG;
  509.  
  510. /////////////////////////////////////////////////////////////////////////
  511. // Line-specific configuration options (channel.dat)                   //
  512. /////////////////////////////////////////////////////////////////////////
  513.  
  514. typedef struct {
  515.    USHORT TaskNumber;
  516.    CHAR   Device[32];               // Communication Device (COM2, COM3, etc.)
  517.    ULONG  Speed;                    // DTE Maximum Speed
  518.    USHORT LockSpeed;
  519.    CHAR   Initialize[3][48];        // Initialization Strings
  520.    CHAR   Answer[48];               // Command to Answer an Incoming Call
  521.    CHAR   Dial[48];                 // Command to Dial to Another Modem
  522.    CHAR   Hangup[48];               // Command to Hangup the Line
  523.    CHAR   OffHook[48];              // Command to Bring the Modem OffHook
  524.    USHORT DialTimeout;
  525.    USHORT CarrierDropTimeout;
  526.    USHORT StripDashes;
  527.    CHAR   FaxMessage[48];
  528.    CHAR   FaxCommand[64];
  529.    CHAR   SchedulerFile[64];
  530.    CHAR   MainMenu[32];
  531.    CHAR   Ring[32];
  532.    UCHAR  ManualAnswer;
  533.    UCHAR  LimitedHours;
  534.    USHORT StartTime;
  535.    USHORT EndTime;
  536.    CHAR   CallIf[64];
  537.    CHAR   DontCallIf[64];
  538. } CHANNEL;
  539.  
  540. /////////////////////////////////////////////////////////////////////////
  541. // FidoNet nodes definitions (nodes.dat)                               //
  542. /////////////////////////////////////////////////////////////////////////
  543.  
  544. typedef struct {
  545.    CHAR   Address[64];              // Node's address
  546.    CHAR   SystemName[64];           // System name
  547.    CHAR   SysopName[48];            // Sysop name
  548.    CHAR   Location[48];             // Location of this node (city/state)
  549.    ULONG  Speed;                    // Maximum connection speed
  550.    ULONG  MinSpeed;                 // Minimum connection speed allowed
  551.    CHAR   Phone[48];                // Phone number
  552.    CHAR   Flags[48];                // Nodelist-type flags
  553.    CHAR   DialCmd[32];              // Special dialing command for this node
  554.    CHAR   SessionPwd[32];           // Mail session password
  555.    CHAR   AreaMgrPwd[32];           // AreaManager (Echomail and Tic) password
  556.    CHAR   OutPktPwd[9];             // Outbound packet password
  557.    CHAR   InPktPwd[9];              // Inbound packet password
  558.    CHAR   TicPwd[32];
  559.    UCHAR  RemapMail;                // TRUE=Remap mail directed to SysopName
  560.    UCHAR  UsePkt22;                 // TRUE=Use mail packet type 2.2
  561.    UCHAR  CreateNewAreas;           // TRUE=Can create new echomail areas
  562.    CHAR   NewAreasFilter[128];      // Filter for new echomail areas
  563.    CHAR   Packer[16];
  564.    UCHAR  ImportPOP3Mail;           // TRUE=Import e-mail from POP3 server
  565.    UCHAR  UseInetAddress;           // TRUE=Use the personal Inet address
  566.    CHAR   InetAddress[64];          // Personal E-Mail address
  567.    CHAR   Pop3Pwd[32];              // Password for POP3 mail server
  568. } NODES;
  569.  
  570. /////////////////////////////////////////////////////////////////////////
  571. // Compressors definition (packer.dat)                                 //
  572. /////////////////////////////////////////////////////////////////////////
  573.  
  574. #define OS_DOS             0x0001
  575. #define OS_OS2             0x0002
  576. #define OS_WINDOWS         0x0004
  577. #define OS_LINUX           0x0008
  578.  
  579. typedef struct {
  580.    CHAR   Key[16];
  581.    CHAR   Display[32];
  582.    CHAR   PackCmd[128];
  583.    CHAR   UnpackCmd[128];
  584.    CHAR   Id[32];
  585.    LONG   Position;
  586.    USHORT OS;
  587. } PACKER;
  588.  
  589. /////////////////////////////////////////////////////////////////////////
  590. // Event scheduler records (events.dat)                                //
  591. /////////////////////////////////////////////////////////////////////////
  592.  
  593. #define DAY_SUNDAY         0x01
  594. #define DAY_MONDAY         0x02
  595. #define DAY_TUESDAY        0x04
  596. #define DAY_WEDNESDAY      0x08
  597. #define DAY_THURSDAY       0x10
  598. #define DAY_FRIDAY         0x20
  599. #define DAY_SATURDAY       0x40
  600.  
  601. typedef struct {
  602.    CHAR   Label[32];                // Reference label
  603.    UCHAR  Hour;
  604.    UCHAR  Minute;
  605.    USHORT WeekDays;
  606.    USHORT Length;                   // Duration of this event (if applicable)
  607.    USHORT LastDay;
  608.    UCHAR  Dynamic;
  609.    UCHAR  Force;                    // Force execution of this event
  610.    UCHAR  MailOnly;
  611.    UCHAR  ForceCall;                // TRUE=Force a call to the node specified
  612.    CHAR   Address[32];              // Fidonet address to call
  613.    UCHAR  SendNormal;
  614.    UCHAR  SendCrash;
  615.    UCHAR  SendDirect;
  616.    UCHAR  SendImmediate;
  617.    USHORT CallDelay;
  618.    UCHAR  StartImport;
  619.    UCHAR  StartExport;
  620.    UCHAR  ExportMail;
  621.    UCHAR  ImportNormal;
  622.    UCHAR  ImportKnown;
  623.    UCHAR  ImportProtected;
  624.    CHAR   RouteCmd[64];
  625.    CHAR   Command[128];
  626.    USHORT MaxCalls;
  627.    USHORT MaxConnects;
  628.    UCHAR  AllowRequests;
  629.    UCHAR  MakeRequests;
  630.    UCHAR  ProcessTIC;
  631.    UCHAR  ClockAdjustment;
  632.    UCHAR  Dummy[128];
  633. } EVENT;
  634.  
  635. /////////////////////////////////////////////////////////////////////////
  636. // External file transfer protocols (protocol.dat)                     //
  637. /////////////////////////////////////////////////////////////////////////
  638.  
  639. typedef struct {
  640.    USHORT Size;
  641.    CHAR   Key[16];
  642.    CHAR   Description[64];
  643.    UCHAR  Active;
  644.    UCHAR  Batch;
  645.    UCHAR  DisablePort;
  646.    UCHAR  ChangeToUploadPath;
  647.    CHAR   DownloadCmd[64];
  648.    CHAR   UploadCmd[64];
  649.    CHAR   LogFileName[64];
  650.    CHAR   CtlFileName[64];
  651.    CHAR   DownloadCtlString[32];
  652.    CHAR   UploadCtlString[32];
  653.    CHAR   DownloadKeyword[32];
  654.    CHAR   UploadKeyword[32];
  655.    USHORT FileNamePos;
  656.    USHORT SizePos;
  657.    USHORT CpsPos;
  658. } PROTOCOL;
  659.  
  660. /////////////////////////////////////////////////////////////////////////
  661. // Nodelist flags mapping for dialing (nodeflag.dat)                   //
  662. /////////////////////////////////////////////////////////////////////////
  663.  
  664. typedef struct {
  665.    USHORT Size;                     // Size of this structure
  666.    CHAR   Flags[64];                // Flags handled by this entry (comma-separated)
  667.    CHAR   Cmd[64];                  // Dialing command
  668. } NODEFLAGS;
  669.  
  670. #endif
  671.  
  672.